<?php
require_once '../Generique/header_complet.php';
$bdd = ouvrirBase();

$notification = "";
// seul quelqu'un de loguer peut faire des op�rations sur son compte
if(isset($_SESSION['statut'], $_SESSION['nom']) && ($_SESSION['statut'] == "moderateur" || $_SESSION['statut'] == "administrateur") )
{
// affichage des informations
	echo '<h1>Histoires en Attentes</h1>';
	

	if(verifier_token(3600, 'Pages/histoiresAttente.php', 'operations_management', 'tokenManagement'))	
	{
		$token = generer_token('operations_management');
		if(isset($_POST['Accepter']))
		{
			if(isset ($_GET['idHistoire']) && verifierHistoire( $bdd , $_GET['idHistoire'] ) )
			{
				$autorisation = true;
				if($_SESSION['statut'] == "moderateur" )		// un mod�rateur ne peut appliquer ses r�sultats qu'� son univers
				{
					$req = $bdd->prepare('SELECT COUNT(*) FROM dil_histoires, dil_moderation
										WHERE moderateur = :pseudo AND univers = nomUnivers');
					$req->bindValue('pseudo', $_SESSION['nom'], PDO::PARAM_STR);
					$req->execute();
					$result = $req->fetch();
					if($result['COUNT(*)'] < 1 )
						$autorisation = false;
				}
				if($autorisation)
				{	
					//On transfère l'histoire en attente vers les histoires consultables
					$req = $bdd->prepare('DELETE FROM dil_histoiresenattentes WHERE idHistoire = :id');
					$req->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
					$req->execute();
					$notification =	'L\'histoire est &agrave; pr&eacute;sent consultable par tout le monde';
					echo	'<br /><br /><a href = "management.php?name=demissionMode"> Retour &agrave; la page de management</a><br />';
					echo	'<br /><a href = "accueil.php"> Retour &agrave; l\'accueil</a><br />';
				}

			}
			else
			{
				$notification = "Vous n'avez pas les droits requis pour accéder à cette page";
			}
			
		}
		else if(isset ($_POST['Refuser']))
		{
			if(isset ($_GET['idHistoire']) && verifierHistoire( $bdd , $_GET['idHistoire'] ) )
			{
				$autorisation = true;
				if($_SESSION['statut'] == "moderateur" )		// un mod�rateur ne peut appliquer ses r�sultats qu'� son univers
				{
					$req = $bdd->prepare('SELECT COUNT(*) FROM dil_histoires, dil_moderation
										WHERE moderateur = :pseudo AND univers = nomUnivers');
					$req->bindValue('pseudo', $_SESSION['nom'], PDO::PARAM_INT);
					$req->execute();
					$result = $req->fetch();
					if($result['COUNT(*)'] < 1 )
						$autorisation = false;
				}
				if($autorisation)
				{	
					//On transf�re l'histoire en attente vers les histoires en quarantaine
					$req = $bdd->prepare('DELETE FROM dil_histoiresenattentes WHERE idHistoire = :id ');
					$req->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
					$req->execute();
					$req = $bdd->prepare('INSERT INTO dil_histoiresenquarantaine(idHistoire) VALUES(:id)');
					$req->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
					$req->execute();
					$notification =	"L'histoire a été mise en quarantaine";
					echo	'<br /><br /><a href = "management.php?name=demissionMode"> Retour &agrave; la page de management</a><br />';
					echo	'<br /><a href = "accueil.php"> Retour &agrave; l\'accueil</a><br />';
				}
				else
				{
					$notification = "Vous n'avez pas les droits requis pour accéder à cette page";
				}
			}
		}
	}
	else
	{
		$token = generer_token('operations_management');
		   
		 //On cr�e un gestionnaire de pages pour afficher les informations souhait�es
	   $nbHistoiresParPages = 5;
	   if($_SESSION['statut']== "administrateur" )
	   {
			$base_requete = 'SELECT dil_histoires.titre AS Nom,
							dil_histoires.Description AS Description,
							dil_histoires.id AS id,
							dil_histoires.premierePage AS premierePage,
							dil_histoires.rating AS Rating,
							pseudoAuteur AS Auteur,
							niveau AS Niveau,
							nomUnivers
							FROM dil_histoires, dil_histoiresenattentes 
							WHERE id = idHistoire';

			$nbTitre = $bdd->prepare('SELECT COUNT(*) FROM dil_histoiresenattentes');
		}
		else
		{
			$base_requete = 'SELECT dil_histoires.titre AS Nom,
							dil_histoires.Description AS Description,
							dil_histoires.id AS id,
							dil_histoires.premierePage AS premierePage,
							dil_histoires.rating AS Rating,
							pseudoAuteur AS Auteur,
							niveau AS Niveau,
							nomUnivers
							FROM dil_histoires, dil_histoiresenattentes, dil_moderation
							WHERE id = idHistoire AND moderateur = :pseudo AND nomUnivers = univers' ;		
			
			$nbTitre = $bdd->prepare('SELECT COUNT(*) FROM  dil_histoires, dil_histoiresenattentes, dil_moderation
									WHERE id = idHistoire AND moderateur = :pseudo AND nomUnivers = univers') ;	
			$nbTitre->bindValue('pseudo', $_SESSION['nom'], PDO::PARAM_INT);
		}
		$nbTitre->execute();
		$titre = $nbTitre->fetch();
		$titre = $titre['COUNT(*)'];
		$i = 1;
		$menuPage;
	   
	   
		
	   
	   if (floor(($titre-1)/$nbHistoiresParPages )> 0)
	   {
			$menuPage = "Pages  ";
	   
		   $page=1;
		   if(isset($_GET['page']) && is_numeric($_GET['page']))
		   {
				$page = $_GET['page'];
				if($page  < 1 || $page > ceil($titre/$nbHistoiresParPages))
					$page=1;
					
			}
		   while (floor(($titre-1) / $nbHistoiresParPages)>= $i)
			{
				if($page == $i)
					$menuPage .= "$i | ";
				else
					$menuPage .= '<a href = "histoiresAttente.php?page='.$i.'">'.$i.'</a> | ';
				$i += 1;
			}
			if($page == $i)
				$menuPage .= "$i<br /><br />";
			else 
				$menuPage .= '<a href = "histoiresAttente.php?page='.$i.'">'.$i.'</a><br /><br />';
			
			 //On affiche la barre de gestion des pages
			echo $menuPage;
			
			//On r�cup�re les informations que l'on souhaite afficher sur la page actuelle
			
			$req = $bdd->prepare($base_requete.' LIMIT :debut, :fin'); 
			
			if ($page == floor(($titre-1)/$nbHistoiresParPages) + 1){
				
				$req->bindValue('debut',(($page-1)*$nbHistoiresParPages), PDO::PARAM_INT);
				$req->bindValue('fin',($titre - ($page-1)*$nbHistoiresParPages), PDO::PARAM_INT);
			}
		   else{
				$req->bindValue('debut',(($page-1)*$nbHistoiresParPages), PDO::PARAM_INT);
				$req->bindValue('fin',$nbHistoiresParPages, PDO::PARAM_INT);
				
			}
		}
		else
		{
			$req = $bdd->prepare($base_requete);
		}
		
		if($_SESSION['statut'] == "moderateur" )
		$req->bindValue('pseudo', $_SESSION['nom'], PDO::PARAM_STR);
		$req->execute();
								   
		//On affiche les données selctionnées
		while( $donnees = $req->fetch() )
		{
			echo '<div class="requete">';
				echo '<table border="0px">';
					echo '<tr>';
						//case pour le rating
						echo '<td width="50px">
							<img src="../Images/Rating/rat_' . $donnees['Rating'] . '.png" />
						</td>';
						echo '<td width="550px">';
						echo '<p>';
							echo '<b>' . $donnees['Nom'] . '</b><br/>
							univers : '.$donnees['nomUnivers'].'<br />
							'.$donnees['Description'] . '<br/>
							<i><a href="afficherLesHistoires.php?nom='. $donnees['Auteur'] . '">'. $donnees['Auteur'] . '</a></i><br/>';
						echo '</p>';
					echo '</td>';
					
					echo '<td width="100px">';
						echo '<a href="hierarchie.php?idHistoire=' . $donnees['id'] . '">
						    <input type="submit" class="max" value="Hi&eacute;rarchie" name="Hierarchie" />
						    </a>';
						echo'<form name="nouveauMode" method="post" action="histoiresAttente.php?idHistoire=' . $donnees['id'] . '">';
						echo'<input type = "hidden" name = "demissionMode"/>';
							if($donnees['Niveau']>=2){
                                				echo '<input class="max" type="submit" value="Accepter" name="Accepter" />';
                         				}
                   				echo '<input type="submit" class="max" value="Refuser  " name="Refuser" />';
						echo '<input type = "hidden" value="'.$token.'" name="tokenManagement" />';				
						echo'<input type = "hidden" name = "demissionMode"/></form>';
						
						echo '<a href="modifHistoire.php?idHistoire=' . $donnees['id'] . '&token='.$token.'">';
						echo '<input class="max" type="button" value="Modifier" name="Modifier" />';
						echo '</a>';
			
					echo '</td>';
				echo '</tr>';
			echo '</table>';
		echo '</div>';
		}
		
		//On affiche la barre de gestion des pages
		if (floor(($titre-1)/$nbHistoiresParPages )> 0)
		echo $menuPage;
	}
	

}
else
{
	$notification = "Veuillez vous identifier pour accéder à cette page";
}

//ZONE DE NOTIFICATION : pour l'affichage des différentes notifications
echo '
		<div id="notification">
			'. $notification .'
		</div>';
?>
<?php include("../Generique/pied.php"); ?>
